<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="dokuwiki export">

<p>
<em>Translations of this page are also available in the following languages:</em> <a href="geda-data_plotting_improvements.ru.html" class="wikilink1" title="geda-data_plotting_improvements.ru.html">Русский</a>.
</p>

<h1 class="sectionedit1"><a name="simulation_data_plotting" id="simulation_data_plotting">Simulation Data Plotting</a></h1>
<div class="level1">

</div>
<!-- EDIT1 SECTION "Simulation Data Plotting" [129-169] -->
<h2 class="sectionedit2"><a name="rationale" id="rationale">Rationale</a></h2>
<div class="level2">

<p>
This article discusses on how data plotting can be improved.
There are various programs out there, each has it&#039;s own pros and cons:
</p>
<ul>
<li class="level1"><div class="li"> <a href="http://home.nc.rr.com/gtkwave/" class="urlextern" title="http://home.nc.rr.com/gtkwave/"  rel="nofollow"> gtkwave</a>: a great viewer for digital simulation data</div>
</li>
<li class="level1"><div class="li"> <a href="http://www.telltronics.org/software/gwave/" class="urlextern" title="http://www.telltronics.org/software/gwave/"  rel="nofollow"> gwave</a>: analog waveform viewer</div>
</li>
<li class="level1"><div class="li"> <a href="http://sourceforge.net/projects/kjwaves" class="urlextern" title="http://sourceforge.net/projects/kjwaves"  rel="nofollow"> KJWaves</a>: simulation frontend with plotting window</div>
</li>
<li class="level1"><div class="li"> buildin plotting functions in ngspice</div>
</li>
<li class="level1"><div class="li"> gnuplot / octave / scipy / … or similar programs as postprocessing script languages</div>
</li>
<li class="level1"><div class="li"> …</div>
</li>
</ul>

<p>
There have been various suggestions on the mailing lists about the feature a plotting program could have:
</p>
<ul>
<li class="level1"><div class="li"> postprocessing: integrate, add, diff, fft, …</div>
</li>
<li class="level1"><div class="li"> view, examine: cursors, multiple windows, …</div>
</li>
<li class="level1"><div class="li"> data import, file format: circuit simulation data (gnucap, spice, …) <a href="http://www.hdfgroup.org/HDF5/" class="urlextern" title="http://www.hdfgroup.org/HDF5/"  rel="nofollow"> hdf5 </a>, measured data from oscilloscopes, spectrum analysers, …</div>
</li>
<li class="level1"><div class="li"> data export, file format: hdf5, pictures (png, ps, …), ascii</div>
</li>
<li class="level1"><div class="li"> communication backends: dbus, …</div>
</li>
<li class="level1"><div class="li"> extension/scripting language</div>
</li>
</ul>

</div>
<!-- EDIT2 SECTION "Rationale" [170-1261] -->
<h2 class="sectionedit3"><a name="draft1extend_gtkwaves" id="draft1extend_gtkwaves">Draft1: Extend gtkwaves</a></h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> write some import functions for analog data</div>
</li>
</ul>

</div>
<!-- EDIT3 SECTION "Draft1: Extend gtkwaves" [1262-1347] -->
<h2 class="sectionedit4"><a name="draft2improve_gwave" id="draft2improve_gwave">Draft2: improve gwave</a></h2>
<div class="level2">

<p>
gwave requires an old <a href="http://www.gnu.org/software/guile-gtk/" class="urlextern" title="http://www.gnu.org/software/guile-gtk/"  rel="nofollow"> guile-gtk</a> for GTK1.2.
</p>
<ul>
<li class="level1"><div class="li"> port gwave to guile-gtk2.0 for GTK2.x</div>
</li>
<li class="level1"><div class="li"> remove the guile-gtk requirement. Maybe create a native gtk2 application with libglade?</div>
</li>
</ul>

<p>
A rewrite of gwave:
</p>
<ul>
<li class="level1"><div class="li"> gaw: <a href="http://www.rvq.fr/linux/gaw.php" class="urlextern" title="http://www.rvq.fr/linux/gaw.php"  rel="nofollow">http://www.rvq.fr/linux/gaw.php</a></div>
</li>
</ul>

</div>
<!-- EDIT4 SECTION "Draft2: improve gwave" [1348-1672] -->
<h2 class="sectionedit5"><a name="draft3search_for_existing_data_exploring_programs" id="draft3search_for_existing_data_exploring_programs">Draft3: Search for existing data exploring programs</a></h2>
<div class="level2">

<p>
Are there any programs out there that can show and postprocess simulation data?
If yes, how can they be extended to work as a waveform viewer for the simulators (gnucap, ngspice)?
</p>

</div>
<!-- EDIT5 SECTION "Draft3: Search for existing data exploring programs" [1673-1919] -->
<h2 class="sectionedit6"><a name="draft4a_new_plotting_application" id="draft4a_new_plotting_application">Draft4: A new plotting application</a></h2>
<div class="level2">

<p>
Some vague notes on how a new plotting application could be written.
This notes currently relate on python as programming language.
</p>
<ul>
<li class="level1"><div class="li"> the <acronym title="Graphical User Interface">GUI</acronym> could be created with <a href="http://www.jamesh.id.au/software/libglade/" class="urlextern" title="http://www.jamesh.id.au/software/libglade/"  rel="nofollow">libglade</a></div>
</li>
<li class="level1"><div class="li"> the data storage format could be <a href="http://www.hdfgroup.org/HDF5/" class="urlextern" title="http://www.hdfgroup.org/HDF5/"  rel="nofollow"> hdf5 </a>, maybe together with <a href="http://www.pytables.org/moin" class="urlextern" title="http://www.pytables.org/moin"  rel="nofollow">pytables</a></div>
</li>
<li class="level1"><div class="li"> the plotting engine could be <a href="http://matplotlib.sourceforge.net/" class="urlextern" title="http://matplotlib.sourceforge.net/"  rel="nofollow"> matplotlib</a> (png, ps export included)</div>
</li>
<li class="level1"><div class="li"> postprocessing could be done with <a href="http://www.scipy.org/" class="urlextern" title="http://www.scipy.org"  rel="nofollow"> scipy</a></div>
</li>
<li class="level1"><div class="li"> the scripting language is python. Thus import filter to hdf5 can easily be written. Even an integrated python shell would be possible. Seen on <a href="http://code.enthought.com/mayavi2-screenshot.shtml" class="urlextern" title="http://code.enthought.com/mayavi2-screenshot.shtml"  rel="nofollow"> MayaVi 2</a></div>
</li>
</ul>

<p>
Disadvantage: This configuration has a huge rucksack of additional required packages.
</p>

<p>
<strong>Update</strong>
</p>

<p>
There are now some programs out there, that use the python, numpy, matplotlib tool chain:
</p>
<ul>
<li class="level1"><div class="li"> oscopy: <a href="http://repo.or.cz/w/oscopy.git" class="urlextern" title="http://repo.or.cz/w/oscopy.git"  rel="nofollow">http://repo.or.cz/w/oscopy.git</a></div>
</li>
<li class="level1"><div class="li"> dataplot: <a href="http://www.h-renrew.de/h/dataplot/dataplot.html" class="urlextern" title="http://www.h-renrew.de/h/dataplot/dataplot.html"  rel="nofollow">http://www.h-renrew.de/h/dataplot/dataplot.html</a>, <a href="http://repo.or.cz/w/dataplot.git" class="urlextern" title="http://repo.or.cz/w/dataplot.git"  rel="nofollow">http://repo.or.cz/w/dataplot.git</a></div>
</li>
<li class="level1"><div class="li"> gsim: <a href="http://kiwiki.fmtnuni.sk/mediawiki/index.php/Description_of_gsim" class="urlextern" title="http://kiwiki.fmtnuni.sk/mediawiki/index.php/Description_of_gsim"  rel="nofollow">http://kiwiki.fmtnuni.sk/mediawiki/index.php/Description_of_gsim</a></div>
</li>
</ul>

</div>
<!-- EDIT6 SECTION "Draft4: A new plotting application" [1920-] --></div>
</body>
</html>
